package org.dding.msc.service;

import java.util.Collection;

/**
 * A {@link ServiceTarget} that provides {@link #removeServices() removal} of all services installed so far. 
 * 
 */
public interface BatchServiceTarget extends ServiceTarget {
    /**
     * Removes all services installed into this target so far.
     */
    void removeServices();

    /** {@inheritDoc} */
    BatchServiceTarget addListener(ServiceListener<Object> listener);

    /** {@inheritDoc} */
    BatchServiceTarget addListener(ServiceListener<Object>... listeners);

    /** {@inheritDoc} */
    BatchServiceTarget addListener(Collection<ServiceListener<Object>> listeners);

    /** {@inheritDoc} */
    BatchServiceTarget removeListener(ServiceListener<Object> listener);
}
